﻿Imports Actuariat
Imports System.ComponentModel


Public Class LoadingForm

    Private modeleUniversOMANE As UniversOMANE
    Private controleurOMANE As Controleur

    Private Sub bgw_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw.DoWork
        DevExpress.Skins.SkinManager.EnableFormSkins()
        DevExpress.Skins.SkinManager.EnableMdiFormSkins()
        DevExpress.Skins.SkinManager.EnableFormSkinsIfNotVista()
        DevExpress.Skins.SkinManager.Default.RegisterAssembly(GetType(DevExpress.UserSkins.BonusSkins).Assembly)
        DevExpress.Skins.SkinManager.Default.RegisterAssembly(GetType(DevExpress.UserSkins.SkinProject1).Assembly)

        'Création des modèles

        modeleUniversOMANE = New UniversOMANE()
        init_correspNomDescCibles()
        Dim modeleListeParametres As ParametresList = modeleUniversOMANE.ListeParametres

        'Création des contrôleurs
        Dim controleurListeParametres As New baseControleurListParametres()
        'Initialisation des modèles et des contrôleurs
        Dim initialisationOMANE As New initParametrage(modeleUniversOMANE.refListeTablesReferentiel, _
                                                       controleurListeParametres, _
                                                       modeleListeParametres)
        controleurOMANE = New Controleur(modeleUniversOMANE, _
                                              controleurListeParametres, _
                                              Nothing)

        'Affectation des observateurs au sein du modèle
        'La liste de traitements observe le paramètre représentant la table de mortalité des hommes
        '(pour ajuster le traitement traitTbleTableMortH)
        modeleListeParametres.Table_Mortalite_H.AjouteObserver(modeleUniversOMANE.listeTraitements)
        'La liste de traitements observe le paramètre représentant la table de mortalité des femmes
        '(pour ajuster le traitement traitTbleTableMortF)
        modeleListeParametres.Table_Mortalite_F.AjouteObserver(modeleUniversOMANE.listeTraitements)
        'La liste de traitements observe le paramètre représentant la grille tarifaire
        '(pour ajuster le traitement traitTbleGrilleTarif)
        modeleListeParametres.GrilleTarifaire.AjouteObserver(modeleUniversOMANE.listeTraitements)
        modeleListeParametres.Tble_maintienINCINVM2.AjouteObserver(modeleUniversOMANE.listeTraitements)

        'La liste de segmentation doit observer l'état des correspondances du traitement prepEncours1
        For Each champs As PTIC_GestionBDD.Correspondance In modeleUniversOMANE.listeTraitements.getTraitTbleEncoursPrep1.ListeChampsSortie.Values
            champs.AjouteObserver(modeleUniversOMANE.Segmentation)
        Next

        modeleUniversOMANE.listeTraitements.getTraitMoteurMethode1.listeParametres = modeleListeParametres
        modeleUniversOMANE.listeTraitements.getTraitMoteurMethode2.listeParametres = modeleListeParametres
    End Sub

    Private Sub bgw_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgw.RunWorkerCompleted
        Close()
        Dim oss = New Ossature(controleurOMANE, modeleUniversOMANE)
        AddHandler oss.FormClosing, AddressOf ossFormClosing
        oss.ShowDialog()

    End Sub

    Private Sub ossFormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
        MsgBox("")
    End Sub

    Private Sub LoadingForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        bgw.RunWorkerAsync()
    End Sub
End Class